home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / IBeM 1.05s CLI.adf / readme < prev    next >
Text File  |  1991-06-14  |  12KB  |  319 lines

  1. IBeM Package     Version 1.05
  2. -----------------------------
  3.  
  4. Description:
  5.  
  6. This software package is an IBM PC-XT emulator for the Amiga.
  7. Unlike transformer which will only run on a 68000, this emulator
  8. has been designed to work with any Amiga.  This emulator runs
  9. under AmigaDOS as a task and runs on its own screen in its own
  10. window.  Your Amiga is still free to perform other tasks while the
  11. emulator is running.
  12.  
  13. Setting up IBeM to run takes a little time, please read this file
  14. before trying to run IBeM.
  15.  
  16. Send all bug reports (and money) to:
  17.  
  18. Mark Tomlinson
  19. 30 Kirner St
  20. Christchurch 9
  21. New Zealand
  22.  
  23. or e-mail to:
  24.  
  25. tomlinson@elec.canterbury.ac.nz
  26.  
  27.  
  28. **************************************************************
  29.  
  30.  
  31.  
  32. This package consists of the following files:
  33.  
  34. IBeM                - the emulator itself.
  35. IBeM000             - the 68000/68010 version of the emulator.
  36. mountlist           - a sample mountlist
  37.  
  38. To be able to read and write IBM formatted disks you will also
  39. need messydisk.device or CrossDOS.
  40.  
  41. Messydisk.device is part of a shareware package known as MSH. 
  42. I have been using version 1.30, but other versions eg MSH1.5 may
  43. also work. (NB: MSH1.30 is the update to MSH1.5).
  44.  
  45.  
  46. I am also distributing MSH1.30 on the same disk as the emulator,
  47. but please remember that I did not write it, and the money you
  48. send to me for the emulator does not pay for MSH.  If you wish to
  49. send the developer of MSH payment, please look in the MSH
  50. directory for his address.
  51.  
  52.  
  53.  
  54.  
  55. **************************************************************
  56.  
  57.  
  58. Hardware required:
  59. ------------------
  60.  
  61. For the 020/030 version:
  62. ------------------------
  63.  
  64. An Amiga with a 68020/68030 (or 68040?) and a minimum of 2MB of
  65. fast ram.  This version will not work with the 68000.  The reason
  66. for requiring so much memory is that the emulator allocates a
  67. whole 1Meg for the IBM's address space.  A math co-processor is
  68. not required, but later versions of the Emulator may use one to
  69. emulate an 8087.  IBeM makes no use of the MMU so it will work on
  70. 68020 boards which don't include MMU's.
  71.  
  72. The 020 version is known not to work on early GVP accelerator
  73. boards, but a PAL (that's a logic array, not a display mode)
  74. upgrade is available from the manufacturer.  The reason for not
  75. working is that the emulator writes words at odd boundaries
  76. (since 8088's can do this), and while this is valid for 68020 and
  77. 68030 processors, the logic on the accelerator board must also
  78. support it.  As no extra hardware is required for this function
  79. (except for different contents in the PAL), its omission is
  80. simply an oversight of the developer.
  81.  
  82. For the 68000/68010 version:
  83. ----------------------------
  84.  
  85. Any Amiga computer.  This emulator will also run on 68020/030
  86. processors, but the version made specifically for these processors
  87. is more optimal and will run faster.  If you have a GVP
  88. accelerator board which does not run the 020/030 version, then
  89. you can still run the 68000 version.
  90.  
  91. This version does not require as much ram to run as the 020/030
  92. version - it will run on a 1M machine.  A3000 owners who have
  93. only 1M fast mem and 1M chip will also be able to use this
  94. version.
  95.  
  96. **************************************************************
  97.  
  98.  
  99. Emulation:
  100. ----------
  101.  
  102. Currently the emulator supports the full 8088 instruction set,
  103. (don't be confused by system information programs that say that
  104. it is a V20 - the extra V20 instructions are not yet, but may
  105. shortly be, emulated).
  106.  
  107. A CGA style screen with text and colour graphics is supported. 
  108. Full four page 80 column text or 8 page 40 column text are
  109. supported, as well as 4 colour lo-res and 2 colour hi-res display
  110. modes.  Flashing mode is not supported, use of this mode results
  111. in a high intensity background colour.
  112.  
  113. There is no sound, serial port or maths coprocessor emulated as
  114. yet (See update.txt for parallel port emulation).  The
  115. development of these functions will depend on the amount of
  116. support this product gets.
  117.  
  118. Most of the BIOS functions are implemented as illegal
  119. instructions which are then emulated by the Amiga.  There are no
  120. IBM ROM's buried inside the code.
  121.  
  122.  
  123. **************************************************************
  124.  
  125.  
  126. Disks for use under the emulator.
  127. ---------------------------------
  128.  
  129. You will need to create a mountlist entry for all the disk drives
  130. that you wish to use under the emulator.  The minimum is a single
  131. floppy (don't expect to be able to run ROM BASIC).
  132.  
  133. These entries are searched for in the devs:mountlist file.  The
  134. drives must be named (in upper case) IBMA:, IBMB:, and IBMC:. 
  135. Only two floppies and one harddisk (drive C) are supported.  The
  136. fields which the emulator uses are:
  137.     BlocksPerTrack
  138.     Surfaces
  139.     HighCyl
  140.     LowCyl
  141.     StartCyl
  142.     DosType
  143.     Device
  144.     Unit
  145.     Flags
  146.  
  147. All of these except for Flags are required, any extras are
  148. ignored by the emulator.  The DosType field is used for
  149. identifying the drive type.  It should be set to one of the
  150. following:
  151.   DosType = 1   5.25" 360K drive
  152.             2   5.25" 1.2M  drive
  153.             3   3.5"  720K  drive
  154.             4   3.5"  1.44M drive
  155.  
  156. The Flags is passed directly to the device driver.  Normally
  157. this is not used, but may have to be set to 1 for 5.25" disks
  158. (= TDF_ALLOW_NON_3_5).
  159.  
  160. Since extra fields are ignored by the Emultor, it is possible,
  161. simply by adding in a FileSystem, to be able to mount IBMA: and
  162. use it under AmigaDOS (as MSH was intended to be used), and also
  163. have it available under the emulator.
  164.  
  165. The device *must* support reading into fast ram.  Trackdisk
  166. Device does not no this, but messydisk.device does.  (Also,
  167. CrossDOS's mfm.device, which is the equivalent to messdisk.device
  168. uses  fast ram for buffers).  I have yet to see a hard disk which
  169. will not read/write to/from fast ram.
  170.  
  171. Don't expect to be able to read 1.44 Meg disks in the Amiga's
  172. internal floppy drive.  I don't even know that a 5.25" drive will
  173. give you a true 360K disk under messydisk.device.  The drive
  174. types 1.2M and 1.44M will only be possible if you somehow connect
  175. an IBM style controller to your machine and write a device driver
  176. for it.  It is probably possible to make a mount list entry which
  177. will allow you to format 880K amiga-readable MS-DOS file-system
  178. disks.  For this and other weird size drives, you will need to
  179. use DRIVER.SYS in order to format them on them emulator.
  180.  
  181. For hard disks the DosType field is ignored.  To create an IBM
  182. hard disk partition on the same drive as your Amiga partition,
  183. just set the HighCyl and LowCyl values such that the two do not
  184. overlap. If this means adjusting the size of your Amiga
  185. partition, you will have to back up your Amiga disk, change the
  186. disk's size (with prep or whatever software has been supplied for
  187. this) allowing room for the IBM's partition.  Partitions of over
  188. 32 Megabytes are valid, but these will have to be partitioned
  189. under FDISK when you run the emulator unless you try running DOS
  190. 4.0 (or other similar DOS extensions).
  191.  
  192. In any case, after the mountlist entry is set correctly, you will
  193. need to boot MS-DOS from the floppy, run FDISK (which will
  194. re-boot the emulator), and then run FORMAT.
  195.  
  196. Low-level formatting of harddisks is best done from the Amiga.
  197.  
  198. ***  Please note that MS-DOS can only handle a maximum of 63 sectors
  199. per track.  If you have a hard disk with more than this, you
  200. should write a mountlist entry which does not reflect the true
  201. geometry of your disk.  eg if your disk has 70 sectors/track, set
  202. the mountlist entry to 14 sectors per track, and multiply the
  203. number of heads (or cylinders) by 5. (Be careful to get the disk
  204. partition starting and ending at the right place though!)
  205.  
  206.  
  207. Special Note for CrossDOS users.
  208. --------------------------------
  209.  
  210. CrossDOS can be used to allow you to read your hard disk
  211. partition under AmigaDOS.  MSH is also supposed to be capable of
  212. this, but I had no success with it.  To use it, you will need to
  213. create another mountlist entry.  Since, when you format your
  214. harddisk, a partition table is created, you have to point
  215. CrossDOS past this and at the beginning of the actual C
  216. partition.  The C partition starts on the next Track (*not*
  217. Cylinder) of the volume.  To specify the next cylinder, you need
  218. to fake the mountlist entry.  Specify only one Surface, and set
  219. the LowCyl = (lowcyl for IBMC: * actual number of heads) + 1.
  220. Also set HighCyl to (highcyl for IBMC: * heads + (heads - 1)).
  221. You should then be able to mount this and read your harddisk
  222. files directly, without even running IBeM.
  223.  
  224.  
  225. **************************************************************
  226.  
  227. Running the Emulator:
  228. ---------------------
  229.  
  230. To start the emulator, simply mount all the drives you wish to
  231. use, and then run IBeM.  It should print the messages "Using
  232. device IBMx:" as it finds them in the dos device list.  If you
  233. get the error message "No bootable disk's found", then you either
  234. haven't mounted the disks first, or else don't have an MS-DOS
  235. disk in the drive.
  236.  
  237. Since mounting the drives is always necessary, a script file
  238. called "run-ibm" mounts the drives and starts the emulator
  239. (returning to the CLI).
  240.  
  241. To quit the emulator at any time, simply press ctrl-alt-del.  The
  242. emulator will also quit if it encounters an illegal instruction
  243. while executing 8088 code (similar to the Amiga's GURU).  If this
  244. happens, the emulator will report the address where the error
  245. occured.
  246.  
  247. A command line option exists only for the 68000 version for amount
  248. of memory to use.  The amount specified should be a multiple of
  249. 64K and a maximum of 704K.  (eg typing "IBeM000 640" will emulate
  250. a standard 640K ibm).
  251.  
  252.  
  253. **************************************************************
  254.  
  255.  
  256. Technical Notes:
  257. ----------------
  258.  
  259. As stated above, illegal instructions are used to emulate the
  260. BIOS routines.  If you are using a debugger and come upon an
  261. instruction with hex code DB, just step over it, most debuggers
  262. will cope with this.
  263.  
  264. The timer interrupt (18.20...  times per second), is derived from
  265. the VBLANK frequency.  This means that the interrupts do not
  266. occur at regular intervals, but rather 2 or 3 VBlanks on a PAL
  267. system, or 3 or 4 VBlanks on an NTSC system.  The average time
  268. between ticks comes out right, but individual interrupts do not
  269. occur at regular intervals.  Also - if you change modes between
  270. NTSC and PAL, you can expect to get your clock running faster or
  271. slower.
  272.  
  273. The cursor is a sprite.  If you use a mouse blanker which
  274. actually kills all sprites, then the cursor will disappear as
  275. well.
  276.  
  277. Since IBM's don't know how to wait for an event, the processor
  278. is kept busy at all times (even in the BIOS function "wait for
  279. keypress").  To allow other tasks to be run at the same time, the
  280. emulator automatically switches its task priority to -20.  This
  281. means that any processor hungry applications which are running
  282. will lock out the emulator unless they too are set to a priority
  283. of -20 (to get sharing of the processor).  Editors, CLI's,
  284. calculators, etc, impact very little on the emulators
  285. performance.
  286.  
  287. Since it is easy to lock out the emulator from the CPU (with any
  288. other task), the emulator can get behind with its timer
  289. interrupts.  If this happens for less than 5 seconds it will
  290. recover however, a timer interrupt will occur every VBLank until
  291. the time has caught up.  This can be seen as a fast cursor flash. 
  292. Time will be lost however if the emulator is held off the CPU for
  293. more than about 5 seconds (256 VBlanks).
  294.  
  295. MS-DOS only sees the part of the disk which is stated in the
  296. mountlist.  It only knows about the part in the range LowCyl to
  297. HighCyl.  When the emulator writes to track 0 this gets
  298. translated to write physically at cylinder LowCyl.  So even if
  299. you have a partition on your hard drive between cylinders 415 to
  300. 612, FDISK will think you have a drive with 148 cylinders,
  301. starting from 0.
  302.  
  303.  
  304.  
  305. **************************************************************
  306.  
  307.  
  308. Known Bugs:
  309. -----------
  310.  
  311. Conditional branches which are at the end of the code segment and
  312. have a positive displacement will not branch to the beginning of
  313. the code segment as they are supposed to.  This was done for
  314. speed.  Short jumps do behave correctly however.  I have yet to
  315. see some software which this causes a problem.  Also, code which
  316. runs past the end of the code segment will not jump back to the
  317. beginning of the segment.
  318.  
  319.